home *** CD-ROM | disk | FTP | other *** search
/ CD ROM Paradise Collection 4 / CD ROM Paradise Collection 4 1995 Nov.iso / program / swagd_f.zip / EGAVGA.SWG / 0082_Font Size.pas < prev    next >
Pascal/Delphi Source File  |  1994-01-27  |  2KB  |  46 lines

  1. {
  2. How does Norton defeat the one vertical scan line dividing its
  3. characters in order to write their alphanumeric menu screens?  I have a
  4. "user-font" which loads successfully into vga display memory using tp7:
  5. }
  6. type
  7.   bytearray = array[0..maxbytes] of byte;
  8. var
  9.   fontarray : bytearray;  { character byte array }
  10. procedure wrfont(input : bytearray; blknum, numline : byte);  assembler;
  11. { "input" is an array containing character bit patterns (8x16 character)
  12.   "blknum" is the block number
  13.   "numline" is the number of scanlines per character }
  14.   asm
  15.     push    bp            { save the base point register }
  16.     mov     bl, blknum    { get block number }
  17.     and     bl, 07        { limit to 0-7 block number }
  18.     les     ax, input     { point to "C" buffer es:ax }
  19.     mov     bh, numline   { number of bytes per characters }
  20.     mov     bp, ax        { load offset to "C" buffer es:bp }
  21.     mov     cx, 100h      { do for 256 characters }
  22.     xor     dx, dx        { begin at 0 }
  23.     mov     ax, 1110h     { load font }
  24.     int     10h           { call interrupt }
  25.     pop     bp            { restore the base point register }
  26.   end;
  27. {
  28.     This procedure loads my user-font correctly into display memory;
  29. however, I still have one verical scanline between my horizontal line
  30. characters making them basically worthless for my purposes (it "draws"
  31. a dashed line like above).  I thought when alphanumeric characters are
  32. mapped, you need to leave a bit pattern open along the right and bottom
  33. edges in order to separate the characters.  Closing up the right and
  34. bottom edges should "connect" the characters, yet I've found it does
  35. not.  I have tried replacing the original ASCII horizontal line
  36. characters and this also fails.
  37.     What information do I need?  How can I connect my font characters
  38. to display Norton-like menus in alphanumeric 8x16 vga font format (or
  39. for that matter, any two primitive graphic fonts)?  Does it make any
  40. difference with which ASCII characters I replace in my table?
  41.     By the way, I noticed that Norton's alternate font does have a
  42. small (anal retentively) defect.  Their upper right box characters
  43. do not have a "crisp" corner.  Each one has a pixel "nub" to the right.
  44. I have a feeling this is a clue to answer my problem but I still
  45. haven't gotten it right.  Anyone know?
  46. }